﻿using System;
using System.Drawing;
using System.Drawing.Imaging;

public class ImageGenerator
{
    public static void GenerateImage(string nickname, string outputPath)
    {
        // 创建一个 256x256 的空白图片
        using (Bitmap bitmap = new Bitmap(256, 256))
        {
            using (Graphics graphics = Graphics.FromImage(bitmap))
            {
                // 设置背景色为与黑色鲜明对比的随机颜色
                Color backgroundColor = GetRandomContrastingColor();
                graphics.Clear(backgroundColor);

                // 设置字体
                Font font = new Font("Arial", 128, FontStyle.Bold);
                SolidBrush brush = new SolidBrush(Color.Black);

                // 获取昵称的第一个字符
                string firstChar = nickname.Length > 0 ? nickname[0].ToString() : "A";

                // 计算文本的位置
                SizeF textSize = graphics.MeasureString(firstChar, font);
                PointF textLocation = new PointF(
                    (bitmap.Width - textSize.Width) / 2,
                    (bitmap.Height - textSize.Height) / 2
                );

                // 绘制文本
                graphics.DrawString(firstChar, font, brush, textLocation);
            }

            // 保存图片
            bitmap.Save(outputPath, ImageFormat.Png);
        }
    }

    private static Color GetRandomContrastingColor()
    {
        Random random = new Random();
        while (true)
        {
            // 生成随机颜色
            Color color = Color.FromArgb(random.Next(256), random.Next(256), random.Next(256));

            // 计算亮度
            double luminance = 0.299 * color.R + 0.587 * color.G + 0.114 * color.B;

            // 如果亮度足够高（与黑色对比明显），则返回该颜色
            if (luminance > 128)
            {
                return color;
            }
        }
    }
}